/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.bld.model.endereco;

import br.com.bld.util.facade.BLDDataErro;

/**
 *
 * @author Pedro
 */
public class EnderecoEntity implements BLDDataErro {
    
    public static final String CLASS_ID = "EnderecoEntity";
    
    private String logradouro;  // character varying(255) NOT NULL,
    private String complemento; // character varying(255),
    private Integer codgIbge;   // smallint,
    private String numero;      // character varying(9),
    private Integer cep;        // numeric(8,0),
    private String bairro;      // character varying(50),
    
    public static final String CAMPO_LOGRADOURO = "Logradouro";
    public static final String CAMPO_COMPLEMENTO = "Complemento";
    public static final String CAMPO_CODG_IBGE = "Código do IBGE";
    public static final String CAMPO_NUMERO = "Número";
    public static final String CAMPO_CEP = "CEP";
    public static final String CAMPO_BAIRRO = "Bairro";

    /**
     * @return the logradouro
     */
    public String getLogradouro() {
        return logradouro;
    }

    /**
     * @param logradouro the logradouro to set
     */
    public void setLogradouro(String logradouro) {
        if(logradouro == null || logradouro.equals(""))
            throw new IllegalArgumentException(String.format(CAMPO_OBRIGATORIO, CAMPO_LOGRADOURO));
        if(logradouro.length() > 255)
            throw new IllegalArgumentException(String.format(TAMANHO_MAX_MAIOR, CAMPO_LOGRADOURO));
       
        this.logradouro = logradouro;
    }

    /**
     * @return the complemento
     */
    public String getComplemento() {
        return complemento;
    }

    /**
     * @param complemento the complemento to set
     */
    public void setComplemento(String complemento) {
        if(complemento != null && complemento.length() > 255)
            throw new IllegalArgumentException(String.format(TAMANHO_MAX_MAIOR, CAMPO_COMPLEMENTO));
       
        this.complemento = complemento;
    }

    /**
     * @return the codgIbge
     */
    public Integer getCodgIbge() {
        return codgIbge;
    }

    /**
     * @param codgIbge the codgIbge to set
     */
    public void setCodgIbge(Integer codgIbge) {
        this.codgIbge = codgIbge;
    }

    /**
     * @return the numero
     */
    public String getNumero() {
        return numero;
    }

    /**
     * @param numero the numero to set
     */
    public void setNumero(String numero) {
        if(numero != null && numero.length() > 255)
            throw new IllegalArgumentException(String.format(TAMANHO_MAX_MAIOR, CAMPO_NUMERO));
        this.numero = numero;
    }

    /**
     * @return the cep
     */
    public Integer getCep() {
        return cep;
    }

    /**
     * @param cep the cep to set
     */
    public void setCep(Integer cep) {
        
        this.cep = cep;
    }

    /**
     * @return the bairro
     */
    public String getBairro() {
        return bairro;
    }

    /**
     * @param bairro the bairro to set
     */
    public void setBairro(String bairro) {
        if(bairro != null && bairro.length() > 255)
            throw new IllegalArgumentException(String.format(TAMANHO_MAX_MAIOR, CAMPO_BAIRRO));
        
        this.bairro = bairro;
    }
}
